package main

import (
	"fmt"
	"log"
)

func main() {
	fmt.Println("macOS 代理程序启动中...")
	
	config, err := loadConfig()
	if err != nil {
		log.Fatalf("加载配置失败: %v", err)
	}
	
	// 检查并安装CA根证书
	if err := checkAndInstallCARoot(config); err != nil {
		log.Fatalf("处理CA根证书失败: %v", err)
	}
	
	// 检查并添加hosts条目
	if err := checkAndAddHostsEntry(config.Domain); err != nil {
		log.Fatalf("处理hosts文件失败: %v", err)
	}
	
	// 检查或生成证书
	cert, err := checkOrGenerateCertificate(config.Domain, config)
	if err != nil {
		log.Fatalf("处理证书失败: %v", err)
	}
	
	fmt.Println("配置参数:")
	fmt.Printf("  Domain: %s\n", config.Domain)
	fmt.Printf("  Target: %s\n", config.Target)
	fmt.Printf("  Model: %s\n", config.Model)
	fmt.Printf("  TargetModel: %s\n", config.TargetModel)
	fmt.Printf("  CAFile: %s\n", config.CAFile)
	fmt.Printf("  CAKeyFile: %s\n", config.CAKeyFile)
	if config.APIKey != "" {
		fmt.Printf("  APIKey: %s\n", "已配置")
	} else {
		fmt.Printf("  APIKey: %s\n", "未配置")
	}
	
	// 显示证书信息
	printCertificateInfo(cert)
	
	// 启动HTTPS服务器
	fmt.Println("启动HTTPS服务器...")
	if err := startHTTPSServer(config, cert); err != nil {
		log.Fatalf("启动HTTPS服务器失败: %v", err)
	}
}